package manage.modules.menu.service;

import java.util.List;

import manage.commons.utils.Pager;
import manage.modules.menu.model.Menu;
import manage.modules.menu.model.MenuFolders;

public interface MenuService {
	Menu select(Integer menuId);

	int insert(Menu menu);

	int update(Menu menu);

	int delete(Integer menuId);

	List<Menu> listAll();

	boolean exists(Integer menuId);

	boolean existChildMenu(Integer parentMenuId);

	Long getCountOfAll();

	List<Menu> listMenuByParentMenuId(Integer parentMenuId, int displayType);

	List<Menu> listVisableMenuByParentMenuId(Integer parentMenuId);

	List<Menu> listHideMenuByParentMenuId(Integer parentMenuId);

	List<Menu> listAllParentMenu();

	void query(Menu menu, Pager<Menu> pager);

	List<Menu> listParentMenuByWorkerId(Long workerId);

	List<Menu> listChildMenuByWorkerIdAndParentId(Long workerId,
			Integer parentMenuId);

	List<MenuFolders> listMenuByRoleId(Integer roleId);

	List<Menu> listChildMenuByRoleId(Integer roleId);

	List<MenuFolders> listMenusByWorkerId(Long workerId);

	List<MenuFolders> listMenuFolders();

	MenuFolders listMenuAndChilds(Integer menuId);
	
}
